package View;

import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;


/**
 * Diese Klasse definiert das Fenster "Kostenstelle erstellen"
 * @author Mathias Kuschick
 *
 */
public class KostenstelleErstellen extends JFrame
{
	/**
	 * Instanz des Fensters "Kostenstelle erstellen"
	 */
    private static KostenstelleErstellen instanz = new KostenstelleErstellen();

    
    private JScrollPane scrollpane;
    private KostenstellenTree kostenstellenTree;
    private JButton button_ok, button_abbrechen;
    private JTextField textfeld;
    private JLabel label_name, label_kostenstellenText;
    private JPanel panel_containerUnten;

    /**
     * Listener , der die Verbindung zum Controller darstellt
     */
	Controller.ListenerKostenstelleErstellen listener = new Controller.ListenerKostenstelleErstellen();
		
	
	public KostenstellenTree getKostenstellenTree()
	{
		return kostenstellenTree;
	}
	
    public JButton getOk()
    {
    	return button_ok;
    }
    
    public JButton getAbbrechen()
    {
    	return button_abbrechen;
    }
    
    public JTextField getTextfeld()
    {
    	return textfeld;
    }
    
    public static KostenstelleErstellen getInstance()
    {
        return instanz;
    }
    
    public void setKostenstellenText(String node)
    {
    	label_kostenstellenText.setText("Neue Kostenstelle wird unter der Kostenstelle \"" + node + "\" angelegt." );
    }
    
    public void textfeldLeeren()
    {
    	textfeld.setText("");
    }
    
    public void zeigeWarnung(String string)
    {
    	JOptionPane.showMessageDialog(instanz, string, "Hinweis",
    		    JOptionPane.WARNING_MESSAGE);
    }
    
    public KostenstelleErstellen()
    {
    	setTitle("Kostenstelle erstellen");
		setResizable(false);
		setLayout(new GridBagLayout());
				
		panel_containerUnten = new JPanel();
		
		panel_containerUnten.setLayout(new FlowLayout());

		GridBagConstraints constraintsOben = new GridBagConstraints();
		GridBagConstraints constraintsUnten = new GridBagConstraints();

		constraintsOben.fill = GridBagConstraints.BOTH;
		constraintsOben.gridx = 0;
		constraintsOben.gridy = 0;
		constraintsOben.insets = new Insets(10,5,5,5);    
		
		constraintsUnten.fill = GridBagConstraints.BOTH;
		constraintsUnten.gridx = 0;
		constraintsUnten.gridy = 2;
		constraintsUnten.insets = new Insets(5,5,5,5);  
		
		//Oben
		kostenstellenTree = new KostenstellenTree();
		kostenstellenTree.addTreeSelectionListener(new Controller.ListenerKostenstellenTree(kostenstellenTree));
		scrollpane = new JScrollPane(kostenstellenTree);
		//Oben ende
		
		//Unten
		label_name = new JLabel("Name: ");
    	textfeld = new JTextField("");
    	textfeld.setColumns(20);
    	button_ok = new JButton("ok");
    	button_abbrechen = new JButton("abbrechen");
    	
    	panel_containerUnten.add(label_name);
    	panel_containerUnten.add(textfeld);
    	panel_containerUnten.add(button_ok);
    	panel_containerUnten.add(button_abbrechen);
		//Unten ende
		
		getContentPane().add(scrollpane, constraintsOben);
		getContentPane().add(panel_containerUnten, constraintsUnten);
		
		button_ok.addMouseListener(listener); 
		button_abbrechen.addMouseListener(listener); 
		
		pack();
    }
}
